﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kokomo.Lexical.Expressions;

namespace Kokomo.PeInspector.Native
{
	class NativeVariableLineage
	{
		public NativeVariableLineage(
			Expression value,
			long instructionOffset,
			Type inferredType,
			params NativeVariableLineage[] dependencies
			)
		{
			if (value == null) throw new ArgumentNullException("value");

			this.Value = value;
			this.InstructionOffset = instructionOffset;
			this.InferredType = inferredType;
			this.Dependencies = dependencies;
		}

		public Expression Value { get; private set; }
		public long InstructionOffset { get; private set; }
		public Type InferredType { get; private set; }

		public NativeVariableLineage[] Dependencies { get; private set; }
	}
}
